在 PHP 絕對要小心文檔的可控制內容,例如在 Discuz! 的某個版本中,在 database.inc.php 寫入 zip 檔時,可以將此文件的內容改為 PHP 代碼,而在後續會檢查檔名後綴是否為 .sql ,在前幾篇我們有提到這邊可以利用 Apache 本身解析文檔的特性來繞過,構造 .php.sql 即可繞過。
另外在我另一個主題也有談到最近 Drupal 存在 SQL Injection 的問題〈http://ithelp.ithome.com.tw/ironman7/app/article/all/recent/10160165〉,其中這個漏洞最近有 RCE 的 PoC 出現,詳細利用可以參考這一篇〈http://blog.knownsec.com/2014/10/drupal__callback_nightmare/〉,因此本來只是 SQL Injection 的問題,現在變成有更大的危害了!
因此,只要允許使用者可以上傳檔案,勢必要做好萬全的準備,以免得不償失。 需要更多資訊可以參考之前系列文章 文件上傳漏洞概述